home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / music / dtu140.zip / DTU-API.DOC < prev    next >
Text File  |  1995-03-13  |  12KB  |  169 lines

  1.  
  2.                                  The DTU API:
  3.                                  ------------
  4.  
  5.    This file describes the API that is supported since DTU version 1.40.
  6.    All numbers mentioned in this file are written in hex!
  7.  
  8.    The DTU API conforms (mostly) to the Alternative Mutliplex Interrupt
  9.    Specification. The description of this specification can be found in
  10.    Ralf Brown's Interrupt List.
  11.  
  12.    A short summary: The programs which used the old multiplex interrupt
  13.                     had fixed mux-numbers they installed themselves at.
  14.                     The idea of the Alternative Mux is that a program scans
  15.                     the Mux for the first free number available and installs
  16.                     itself at that number. The TSR can return 2 signature
  17.                     fields to another program to provide installation checks.
  18.                     The other program checks the signatures and acts upon
  19.                     that. The Alternative Mux Specification also has some
  20.                     other predefined functions, of which DTU only supports
  21.                     Function 01 and 03...
  22.  
  23.    Below is a list of the functions supported. The function is passed via
  24.    register AL. All subfunctions are passed through register BL. The
  25.    registers which are used to return values, are the only ones modified.
  26.    All flags are preserved. All functions provided in the Extended API
  27.    return AL=0 if the Extended API is not installed...
  28.  
  29.  ╒Function╤═  Description  ═════════════════════════════════════════════════╕
  30.  │   00   │ Installation check                                 Standard API │
  31.  │        │ ~~~~~~~~~~~~~~~~~~                                              │
  32.  │        │  Expects: Nothing         Returns: AL    = FF                   │
  33.  │        │                                    CX    = Version of DTU       │
  34.  │        │                                            (CH=Major,CL=Minor)  │
  35.  │        │                                    DX:DI = Pointer to signature │
  36.  │        │                                            (See below)          │
  37.  ├────────┼─────────────────────────────────────────────────────────────────┤
  38.  │   01   │ Get API Handler Address                            Extended API │
  39.  │        │ ~~~~~~~~~~~~~~~~~~~~~~~                                         │
  40.  │        │  Expects: Nothing         Returns: AL    = FF                   │
  41.  │        │                                    DX:BX = API Handler Address  │
  42.  │        │                                                                 │
  43.  │        │  This address may be called directly to bypass the Multiplex    │
  44.  │        │  Interrupt chain. Use the interrupt protocol (PUSHF/CALL FAR)!  │
  45.  ├────────┼─────────────────────────────────────────────────────────────────┤
  46.  │   03   │ Pop up                                             Extended API │
  47.  │        │ ~~~~~~                                                          │
  48.  │        │  Expects: Nothing         Returns: AL    = 0  : Already active  │
  49.  │        │                                            FF : Popped up OK    │
  50.  │        │                                    BX    = 0                    │
  51.  │        │                                                                 │
  52.  │        │  BX is officially used as the returncode from the popup code.   │
  53.  │        │  However, this function is implemented in the Extended API,     │
  54.  │        │  which means that DTU's BUSY-FLAG is automatically set when     │
  55.  │        │  processing this function. In other words: No error can be      │
  56.  │        │  generated using this function, thus no other returncode is     │
  57.  │        │  defined...                                                     │
  58.  ├────────┼─────────────────────────────────────────────────────────────────┤
  59.  │   10   │ Extended API Install Check                         Standard API │
  60.  │        │ ~~~~~~~~~~~~~~~~~~~~~~~~~~                                      │
  61.  │        │  Expects: Nothing         Returns: AL    = FF                   │
  62.  │        │                                    BL    = 0 : No Extended API  │
  63.  │        │                                            1 : Ext. API loaded  │
  64.  ├────────┼─────────────────────────────────────────────────────────────────┤
  65.  │   11   │ Utility Install Check                              Extended API │
  66.  │        │ ~~~~~~~~~~~~~~~~~~~~~                                           │
  67.  │        │  Expects: BL = Subfunction:                                     │
  68.  │        │                                                                 │
  69.  │        │                00: Get number of utilities installed            │
  70.  │        │                    Expects: Nothing                             │
  71.  │        │                    Returns: AL = FF                             │
  72.  │        │                             BL = Number of utilities            │
  73.  │        │                                                                 │
  74.  │        │                01: Get installed utilities                      │
  75.  │        │                    Expects: DX:DI = Pointer to buffer           │
  76.  │        │                               (1 byte for each utility)         │
  77.  │        │                    Returns: AL = FF                             │
  78.  │        │                             Buffer filled                       │
  79.  │        │                                                                 │
  80.  │        │                    The buffer is filled with a set of 0's and   │
  81.  │        │                    1's. The first byte corresponds to utility   │
  82.  │        │                    0, the second to 1, etc. If a byte is zero   │
  83.  │        │                    it means that the utility is not installed.  │
  84.  │        │                    If it's non-zero, the utility is loaded.     │
  85.  ├────────┼─────────────────────────────────────────────────────────────────┤
  86.  │   20   │ Get Pop-up Handler Address                         Extended API │
  87.  │        │ ~~~~~~~~~~~~~~~~~~~~~~~~~~                                      │
  88.  │        │  Expects: Nothing         Returns: AL    = FF                   │
  89.  │        │                                    DX:DI = Address of DTU's     │
  90.  │        │                                            pop-up handler       │
  91.  │        │                                                                 │
  92.  │        │  This address may be called directly to let DTU pop up. Use     │
  93.  │        │  the interrupt protocol for the call (PUSHF/CALL FAR)!          │
  94.  ├────────┼─────────────────────────────────────────────────────────────────┤
  95.  │        │                                                                 │
  96.  │        │                                                                 │
  97.  │        │                                                                 │
  98.  │        │                                                                 │
  99.  │        │                                                                 │
  100.  │        │                                                                 │
  101.  │        │                                                                 │
  102.  │        │                                                                 │
  103.  │        │                                                                 │
  104.  │        │                                                                 │
  105.  │        │                                                                 │
  106.  │        │                                                                 │
  107.  │        │                                                                 │
  108.  │        │                                                                 │
  109.  │        │                                                                 │
  110.  │        │                                                                 │
  111.  │        │                                                                 │
  112.  │        │                                                                 │
  113.  │        │                                                                 │
  114.  │        │                                                                 │
  115.  │        │                                                                 │
  116.  │        │                                                                 │
  117.  │        │                                                                 │
  118.  │        │                                                                 │
  119.  │        │                                                                 │
  120.  │        │                                                                 │
  121.  │        │                                                                 │
  122.  │        │                                                                 │
  123.  │        │                                                                 │
  124.  │        │                                                                 │
  125.  │        │                                                                 │
  126.  │        │                                                                 │
  127.  │        │                                                                 │
  128.  │        │                                                                 │
  129.  │        │                                                                 │
  130.  │        │                                                                 │
  131.  │        │                                                                 │
  132.  │        │                                                                 │
  133.  │        │                                                                 │
  134.  │        │                                                                 │
  135.  │        │                                                                 │
  136.  │        │                                                                 │
  137.  │        │                                                                 │
  138.  │        │                                                                 │
  139.  │        │                                                                 │
  140.  │        │                                                                 │
  141.  │        │                                                                 │
  142.  │        │                                                                 │
  143.  │        │                                                                 │
  144.  │        │                                                                 │
  145.  │        │                                                                 │
  146.  │        │                                                                 │
  147.  │        │                                                                 │
  148.  │        │                                                                 │
  149.  │        │                                                                 │
  150.  │        │                                                                 │
  151.  │        │                                                                 │
  152.  │        │                                                                 │
  153.  │        │                                                                 │
  154.  │        │                                                                 │
  155.  │        │                                                                 │
  156.  │        │                                                                 │
  157.  │        │                                                                 │
  158.  │        │                                                                 │
  159.  │        │                                                                 │
  160.  
  161.  
  162.  The pointer to the signature fields (Function 00) points to the following
  163.  structure:
  164.  
  165.        Offset   Length       Description
  166.          00       8          Blank padded name of Software Producer
  167.          08       8          Blank padded program name
  168.          10     max 64.      ASCIIZ string with description of the program
  169.